// Royal Institute of Technology, Stockholm, Sweden,
DRAFT
The technique described here works with most routers, but it is not necessarily so. For example, (some?) Shiva Netbridges will never be discovered.
• Protocols used
RTMP (Routing Table Maintenance Protocol) for topology.
AEP (Apple Echo Protocol) for network reachability checking.
NBP (Name Binding Protocol) for routers' names.
ZIP (Zone Information Protocol) for networks' zones.
ATMap walks through the nets in numbering order and does some checking on all of them. This is partly done in parallel.
Each net has two sets of connected routers, one for those that ATMap has spoken to so that it knows their node numbers ("talked-to" routers), and one for routers that it knows are connected to the net, but it hasn't gotten their node numbers yet - the connection is gray and the node number is a question mark. The latter router can have been read from file, or recently discovered on another net.
For each net it does the following:
1) It broadcasts 3 RTMP Requests. This will make each router on the network respond with a (small) RTMP Response.
2) For each router that is "talked-to", it will send up to 3 RTMP Route Data Requests. The router will return its routing list. By comparing how many route-tuples that it previously got from other routers, it can decide if the routing list received is likely to be complete. If it is not, it will send another RTMP Route Data Request. It then compares the list of routing tuples that have a hop count of zero - which means directly connected - to the connections that the router have to other networks. If new connections are discovered, it will add them. It will not, as of the current version, time out and remove connections. The router is also asked for registered names.
3) For each router that answered in 1) but is not one of the "talked-to"s, it will do the same requesting as in 2). It will then compare the zero-hop-list to the not-yet-"talked-to" routers. If one matches, that will get the node number of the answering router, and it will be "talked-to". The router is also asked for registered names.
4) For those that did not match to any router in 3), a new router will be created.
5) A Zone request for the net will be sent to the current local router.
In parallel with this, an ECHO requester runs through the network. This sends an ECHO packet to any node on the network that has previously replied to an ECHO broadcast. This lets you see if something sometimes answers on any loose network.